package src.com.zt.demo.digtal;

import javax.sound.midi.Soundbank;
import java.util.Random;
import java.util.Scanner;

public class WeChatGrabRedEvelop {
    public static void main(String[] args) {
        System.out.println("...........微信抢红包游戏...............");
        Scanner sc = new Scanner(System.in);    //创建一个从控制台输入的对象，需要从控制台输入红包金额和个数
        System.out.println("请输入红包的总金额(元)：");
        double total = sc.nextDouble(); //获取红包的总金额
        System.out.println("请输入红包个数(个)：");
        int grabcount = sc.nextInt();   //获取红包的个数

        double min = 0.01;  //红包的最小金额；
        Random r = new Random();    //获取一个随机数

        //计算每一个红包可以获得的钱数
        for(int i = 1; i < grabcount; i++){
            /*
            本次红包可以获得的最大金额 = 可分配的金额 - （红包个数-已发出的红包数）*红包的最小金额
             */
            double max = total - (grabcount - i) * min; //本次红包可以放的最大金额
            double bound = max - min;   //本次红包金额的范围

            double safe = (double)(r.nextInt((int) (bound*100))/100);  //本次红包应该赛多少钱
            double money = safe + min;  //防止红包金额为0的值出现，也是红包最后发出的金额
            total = total - money;  //重新计算总金额，作为下一次发红包的金额
            System.out.println("第" + i + "红包" + String.format("%.2f", money) + "元");
        }
        System.out.println("第" + grabcount + "红包" + String.format("%.2f", total) + "元");
        sc.close();
    }
}
